#ifndef __DELAY_H_
#define __DELAY_H_

/* =========================== 用户配置 =========================== */
#include "main.h"

static inline void INIT(void) /* 系统时钟抵滴答初始化 */
{
    SysTick_Config(72000);
}

/* =========================== 外部声明 =========================== */

#include "stdint.h"

/**
 * @brief     初始化延迟函数
 * @param     sysclk: 系统时钟频率, 即CPU频率(HCLK), 72Mhz
 * @retval    无
 */
void delay_init(uint16_t sysclk);

/**
 * @brief     延时nus
 * @note      无论是否使用OS, 都是用时钟摘取法来做us延时
 * @param     nus: 要延时的us数
 * @note      nus取值范围: 0 ~ (2^32 / fac_us) (fac_us一般等于系统主频, 自行套入计算)
 * @retval    无
 */
void delay_us(uint32_t nus);

/**
 * @brief     延时nms
 * @param     nms: 要延时的ms数 (0< nms <= (2^32 / fac_us / 1000))(fac_us一般等于系统主频, 自行套入计算)
 * @retval    无
 */
void delay_ms(uint16_t nms);

#endif /* __DELAY_H_ */
